﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using DAL;
using DTO;

namespace BLL
{
    public class KhachHangBLL
    {
        #region Khai báo
        private KhachHangDAL _khDAL;
        private List<KhachHangDTO> _lst;
        private KhachHangDTO _khDTO;
        #endregion

        #region Khởi tạo
        public KhachHangBLL()
        {
            _khDAL = new KhachHangDAL();
        }
        #endregion

        #region Comment
        //// đăng nhập
        //public KhachHangDTO dangNhap(KhachHangDTO _khDTO)
        //{
        //    try
        //    {
        //        return _khDAL.dangNhap(_khDTO);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new Exception(ex.Message);
        //    }

        //}

        //// lấy thông tin khách hàng
        //public KhachHangDTO GetKhachHang(string tukhoa)
        //{
        //    return _khDAL.GetKhachHang(tukhoa);
        //}

        ///// <summary>
        ///// Phương thức đăng ký tài khoản khách hàng
        ///// </summary>
        ///// <param name="kh">KhachHangDTO</param>
        ///// <returns>int</returns>
        //public int dangKy(KhachHangDTO kh)
        //{
        //    int rs = -1;
        //    try
        //    {
        //        rs = _khDAL.dangKy(kh);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new Exception(ex.Message);
        //    }
        //    return rs;
        //}

        ///// <summary>
        ///// Phương thức kiểm khách hàng nhập mật cũ có đúng ko?
        ///// </summary>
        ///// <param name="kh">KhachHangDTO</param>
        ///// <returns>string</returns>
        //public string ktNhapMatKhauCu(KhachHangDTO kh)
        //{
        //    string _index = null;
        //    try
        //    {
        //        _index = _khDAL.ktNhapMatKhauCu(kh);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new Exception(ex.Message);
        //    }
        //    return _index;
        //}
        #endregion

        #region Phương thức lấy danh sách khách hàng
        /// <summary>
        /// Phương thức lấy danh sách khách hàng
        /// </summary>
        /// <returns>List</returns>
        public List<KhachHangDTO> GetListKhachHang()
        {
            _lst = new List<KhachHangDTO>();

            try
            {
                _lst = _khDAL.GetListKhachHang();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return _lst;

        }
        #endregion

        #region Phương thức getKhachHangTheoEmail
        /// <summary>
        /// Phương thức getKhachHangTheoEmail
        /// </summary>
        /// <param name="email">string</param>
        /// <returns>KhachHangDTO</returns>
        public KhachHangDTO GetKhachHangTheoEmail(string email)
        {
            _khDTO = new KhachHangDTO();

            try
            {
                _khDTO = _khDAL.GetKhachHangTheoEmail(email);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return _khDTO;
        }
        #endregion

        #region Phương thức GetKhachHangTheoToken
        ///// <summary>
        ///// Phương thức GetKhachHangTheoEmail
        ///// </summary>
        ///// <param name="email">string</param>
        ///// <returns>KhachHangDTO</returns>
        //public KhachHangDTO GetKhachHangTheoEmail(string email)
        //{
        //    _khDTO = new KhachHangDTO();
        //    try
        //    {
        //        _khDTO = _khDAL.GetKhachHangTheoEmail(email);

        //    }
        //    catch (Exception ex)
        //    {

        //        throw new Exception(ex.Message);
        //    }

        //    return _khDTO;
        //}
        #endregion

        #region Phương thức getKhachHang theo mã khách hàng
        /// <summary>
        /// Phương thức getKhachHang theo mã khách hàng
        /// </summary>
        /// <param name="email">string</param>
        /// <returns>KhachHangDTO</returns>
        public KhachHangDTO GetKhachHang(string makh)
        {
            _khDTO = new KhachHangDTO();

            try
            {
                _khDTO = _khDAL.GetKhachHang(makh);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return _khDTO;
        }
        #endregion

        #region Phương thức thêm thông tin khách hàng
        /// <summary>
        /// Phương thức thêm thông tin khách hàng
        /// </summary>
        /// <param name="kh">KhachHangDTO</param>
        /// <returns>int</returns>
        public int Them(KhachHangDTO kh)
        {
            int _index = -1;
            try
            {
                _index = _khDAL.Them(kh);      
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return _index;

        }
        #endregion

        #region Phương thức sửa thông tin khách hàng
        /// <summary>
        /// Phương thức sửa thông tin khách hàng
        /// </summary>
        /// <param name="kh">KhachHangDTO</param>
        /// <returns>int</returns>
        public int Sua(KhachHangDTO kh)
        {
            int _index = -1;
            try
            {
                _index = _khDAL.Sua(kh);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return _index;

        }
        #endregion

        #region Phương thức xóa khách hàng
        ///// <summary>
        ///// Phương thức xóa khách hàng
        ///// </summary>
        ///// <param name="kh"></param>
        ///// <returns></returns>
        //public int Xoa(KhachHangDTO kh)
        //{
        //    int _index = -1;
        //    try
        //    {
        //        _index = _khDAL.Xoa(kh);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new Exception(ex.Message);
        //    }
        //    return _index;

        //}
        #endregion


    }
}